package com.lzh.rabbitMQ.one;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * 生产消息
 */
public class Producer {
    //对列名称
    public static final String QUEUE_NAME = "hello";

    //seen message
    public static void main(String[] args) throws Exception {
        //create connetionfactiry
        ConnectionFactory factory = new ConnectionFactory();
        //工厂IP 连接mq对列
        factory.setHost("192.168.29.128");
        //username
        factory.setUsername("root");
        //password
        factory.setPassword("123456");

        //创建连接
        Connection connection = factory.newConnection();
        //获取信道
        Channel channel = connection.createChannel();
        /**
         * 产生一个对列
         *  所包含的参数有：
         *      1、对列的名称
         *      2、对列里面的消息是否持久化（磁盘中）；默认消息的存储在内存之中（不持久化）
         *      3、该队列是否只供一个消费者使用，是否进行消息共享，true：代表可以多个消费者消费；false：只能一个消费者访问
         *      4、是否自动删除，最后一个消费者断开连接以后，该队列是否自动删除，true表示自动删除
         *      5、其他参数：例如，延迟消息等
         */
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);
        //发消息
        String message = "Hello World";//初始使用
        /**
         *发送消息
         *  1、发送到那个交换机
         *  2、路由的配值是什么
         *  3、其他参数信息
         *  4、发送的消息
         */
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
        System.out.println("=======================>消息发送完毕！");
    }
}
